package com.sali.排序.raw;

import java.util.Arrays;

/**
 * @description:
 * @author: sali
 * @date: 2025/9/14 下午3:42.
 * @version: 1.0
 */
public class raw2_冒泡排序 {

    public static void main(String[] args) {
        int[] arr = new int[]{5, 4, 2, 3, 1};
        System.out.println(Arrays.toString(myGetRes(arr)));
    }

    private static int[] myGetRes(int[] arr) {
        int sortIndex = 0;
        while ( sortIndex < arr.length ) {
            boolean sortedFlag = false;
            for ( int i = arr.length - 1; i > 0; i-- ){
                if ( arr[i] < arr[i - 1] ) {
                    int temp = arr[i];
                    arr[i] = arr[i-1];
                    arr[i-1] = temp;
                    sortedFlag = true;
                }
            }
            // 如果一次交换操作都没有进行，说明数组已经有序，可以提前终止算法
            if ( !sortedFlag ) {
                break;
            }
            sortIndex++;
        }
        return arr;
    }

}
